<template>

  <div class="tree-table" style="width:100%;">
    <h3>暂放 涉及算法了 存在问题</h3>
    <TreeTable
      :columns="columns"
      :data-source="roleResList"
      :operator="operator"
      treeStructure
      ref="tree"
    />
  </div>
</template>

<script>
  import WfTable from "@/views/elementPro/component/table/src/index";
  import TreeTable from '@/views/elementPro/component/tree-table/src/index';
  export default {
    components:{
      WfTable,
      TreeTable
    },
    data () {
      return {
        columns: [
          {
            text: '资源名称',
            dataIndex: 'resName'
          },
          {
            text: '资源代码',
            dataIndex: 'resCode'
          },
          {
            text: '资源类型',
            dataIndex: 'type',
            filters: { param: 'MENU_TYPE' }
          },
          {
            text: '所属角色',
            dataIndex: 'roleNames'
          }
        ],
        operator: [
          {
            text: '编辑',
            resCode: 'resource-edit',
            fun: this.goEdit
          }
        ],
        // 数据
        roleResList: []
      }
    },
    mounted () {
      const tree = [
        {
          'id': 378,
          'resName': '系统管理',
          'resCode': 'system-manage',
          'parentId': 0,
          'children': [
            {
              'id': 379,
              'resName': '企业角色管理',
              'resCode': 'ent-role-manage',
              'parentId': 378,
              'children': [
                {
                  'id': 464,
                  'resName': '企业角色导出操作',
                  'resCode': 'ent-role-export',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 465,
                  'resName': '企业角色新增操作',
                  'resCode': 'ent-role-add',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 466,
                  'resName': '企业角色编辑操作',
                  'resCode': 'ent-role-edit',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 467,
                  'resName': '企业角色禁用操作',
                  'resCode': 'ent-role-disabled',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 468,
                  'resName': '企业角色启用操作',
                  'resCode': 'ent-role-ensble',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 469,
                  'resName': '企业角色授权操作',
                  'resCode': 'ent-role-authorize',
                  'parentId': 379,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 380,
              'resName': '运营角色管理',
              'resCode': 'mgt-role-mange',
              'parentId': 378,
              'children': [
                {
                  'id': 470,
                  'resName': '运营角色导出操作',
                  'resCode': 'mgt-role-export',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 471,
                  'resName': '运营角色新增操作',
                  'resCode': 'mgt-role-add',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 472,
                  'resName': '运营角色编辑操作',
                  'resCode': 'mgt-role-edit',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 473,
                  'resName': '运营角色禁用操作',
                  'resCode': 'mgt-role-disabled',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 474,
                  'resName': '运营角色启用操作',
                  'resCode': 'mgt-role-ensble',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 475,
                  'resName': '运营角色授权操作',
                  'resCode': 'mgt-role-authorize',
                  'parentId': 380,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 381,
              'resName': '运营用户管理',
              'resCode': 'mgt-user-mange',
              'parentId': 378,
              'children': [
                {
                  'id': 476,
                  'resName': '运营用户导出操作',
                  'resCode': 'mgt-user-export',
                  'parentId': 381,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 477,
                  'resName': '运营用户冻结操作',
                  'resCode': 'mgt-user-freeze',
                  'parentId': 381,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 478,
                  'resName': '运营用户解冻操作',
                  'resCode': 'mgt-user-unfreeze',
                  'parentId': 381,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 479,
                  'resName': '运营用户重置密码操作',
                  'resCode': 'mgt-user-reset',
                  'parentId': 381,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                },
                {
                  'id': 480,
                  'resName': '运营用户删除操作',
                  'resCode': 'mgt-user-del',
                  'parentId': 381,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 382,
              'resName': '资源菜单管理',
              'resCode': 'resource-manage',
              'parentId': 378,
              'children': [
                {
                  'id': 481,
                  'resName': '资源菜单编辑操作',
                  'resCode': 'resource-edit',
                  'parentId': 382,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 412,
              'resName': '运营用户详情',
              'resCode': 'mgt-user-mange-det',
              'parentId': 378,
              'children': [],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '2',
              'belong': 'mgt-user-mange'
            },
            {
              'id': 413,
              'resName': '运营用户新增',
              'resCode': 'mgt-user-mange-add',
              'parentId': 378,
              'children': [],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '2',
              'belong': 'mgt-user-mange'
            },
            {
              'id': 414,
              'resName': '运营用户授权',
              'resCode': 'mgt-user-mange-authorize',
              'parentId': 378,
              'children': [],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '2',
              'belong': 'mgt-user-mange'
            },
            {
              'id': 435,
              'resName': '节假日设置',
              'resCode': 'holiday-setting',
              'parentId': 378,
              'children': [],
              'roleNames': '运营端管理员,运营端产品经理',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            }
          ],
          'roleNames': '运营端管理员,运营端产品经理',
          'check': true,
          'terminalCode': 'mgt',
          'type': '1',
          'belong': null
        },
        {
          'id': 393,
          'resName': '工作台',
          'resCode': 'workspaces',
          'parentId': 0,
          'children': [
            {
              'id': 394,
              'resName': '待办任务',
              'resCode': 'todo-tasks',
              'parentId': 393,
              'children': [
                {
                  'id': 482,
                  'resName': '待办导出操作',
                  'resCode': 'todo-tasks-export',
                  'parentId': 394,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 395,
              'resName': '待办任务/详情',
              'resCode': 'todo-tasks-detail',
              'parentId': 393,
              'children': [],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '2',
              'belong': 'todo-tasks'
            },
            {
              'id': 396,
              'resName': '任务查询',
              'resCode': 'handled-tasks',
              'parentId': 393,
              'children': [
                {
                  'id': 483,
                  'resName': '任务导出操作',
                  'resCode': 'handled-tasks-export',
                  'parentId': 396,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '2',
                  'belong': null
                }
              ],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 397,
              'resName': '任务查询/详情',
              'resCode': 'handled-tasks-detail',
              'parentId': 393,
              'children': [],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '2',
              'belong': 'handled-tasks-process'
            },
            {
              'id': 448,
              'resName': '流程查看',
              'resCode': 'handled-tasks-process',
              'parentId': 393,
              'children': [],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '2',
              'belong': 'handled-tasks'
            }
          ],
          'roleNames': '运营端管理员',
          'check': true,
          'terminalCode': 'ent,mgt',
          'type': '1',
          'belong': null
        },
        {
          'id': 436,
          'resName': '风险管理',
          'resCode': 'risk-manage',
          'parentId': 0,
          'children': [
            {
              'id': 437,
              'resName': '风控管理',
              'resCode': 'risk-control-manage',
              'parentId': 436,
              'children': [
                {
                  'id': 438,
                  'resName': '风控报告/详情',
                  'resCode': 'risk-report-detail',
                  'parentId': 437,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '2',
                  'belong': 'risk-report-list'
                },
                {
                  'id': 439,
                  'resName': '风控报告',
                  'resCode': 'risk-report-list',
                  'parentId': 437,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '1',
                  'belong': null
                },
                {
                  'id': 440,
                  'resName': '风控报告/规则结果',
                  'resCode': 'risk-report-rule',
                  'parentId': 437,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': 'risk-report-list'
                },
                {
                  'id': 444,
                  'resName': '风控规则查询',
                  'resCode': 'risk-rule-list',
                  'parentId': 437,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '1',
                  'belong': null
                },
                {
                  'id': 445,
                  'resName': '风控规则查询/详情',
                  'resCode': 'risk-rule-detail',
                  'parentId': 437,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'mgt',
                  'type': '2',
                  'belong': 'risk-rule-list'
                }
              ],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 441,
              'resName': '贷后预警',
              'resCode': 'loan-warning',
              'parentId': 436,
              'children': [
                {
                  'id': 442,
                  'resName': '贷后监测',
                  'resCode': 'loan-monitoring',
                  'parentId': 441,
                  'children': [
                    {
                      'id': 453,
                      'resName': '人工执行操作',
                      'resCode': 'loan-monitoring-manually',
                      'parentId': 442,
                      'children': [],
                      'roleNames': '运营端管理员',
                      'check': true,
                      'terminalCode': 'ent,mgt',
                      'type': '2',
                      'belong': null
                    }
                  ],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '1',
                  'belong': null
                },
                {
                  'id': 443,
                  'resName': '贷后监测/详情',
                  'resCode': 'loan-monitoring-detail',
                  'parentId': 441,
                  'children': [],
                  'roleNames': '运营端管理员',
                  'check': true,
                  'terminalCode': 'ent,mgt',
                  'type': '2',
                  'belong': 'loan-monitoring'
                }
              ],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'ent,mgt',
              'type': '1',
              'belong': null
            },
            {
              'id': 447,
              'resName': '额度查询',
              'resCode': 'quota-query',
              'parentId': 436,
              'children': [],
              'roleNames': '运营端管理员',
              'check': true,
              'terminalCode': 'mgt',
              'type': '1',
              'belong': null
            }
          ],
          'roleNames': '运营端管理员',
          'check': true,
          'terminalCode': 'ent,mgt',
          'type': '1',
          'belong': null
        }
      ]
      this.roleResList = this.formatTreeData(tree)
      console.log(this.roleResList)
    },
    methods: {
      // 获取想要的数据结构
      formatTreeData (data) {
        data.forEach(item => {
          if (item.children && item.children.length > 0) {
            this.formatTreeData(item.children)
            item.children.forEach(e => {
              if (e.belong) {
                item.children.map(i => {
                  if (i.resCode === e.belong) {
                    i.children.push(e)
                  }
                })
              }
            })
            item.children = item.children.filter(n => {
              return !n.belong
            })
          }
        })
        return data
      },
      goEdit (val) {
        console.log('点击了按钮', val)
      }
    }
  }
</script>
